package com.aterrizar.dominio.neo.servicios;

import java.util.ArrayList;
import java.util.List;

import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;

import com.aterrizar.dominio.Neo4J.ManagerNeo;
import com.aterrizar.dominio.Neo4J.NeoOperation;
import com.aterrizar.dominio.Neo4J.RelTypes;
import com.aterrizar.dominio.usuarios.Usuario;

public class ConsultarAmigos implements NeoOperation<List<String>>{

    private Usuario usuario;

    public ConsultarAmigos(Usuario usuario){
        this.usuario = usuario;
    }


    public List<String> execute() {

        Node userNode = ManagerNeo.runInSession(new ConsultarUsuarioNeo(this.usuario));
        List<String> nodes = new ArrayList<String>();
        for (Relationship relationship : userNode.getRelationships(RelTypes.KNOWS)) {
            nodes.add((String) relationship.getOtherNode(userNode).getProperty("username"));
        }
        return nodes;
    }
}
